package com.yixq.soa.service.web.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/***
 * 注意:<br>
 * 空字符串表示需要有效的登录才能访问<br>
 * 定义访问权限,该注解只能定义在控制器上.<br>
 * 可以定义在类上表示该类所有方法都需要具备该权限.<br>
 * 定义在方法上表示该方法需要此权限才可以访问.<br>
 * 需要具备多个权限时需要写多个权限,使用格式" @Permission({auth_key1,auth_key2}) ".<br>
 * 权限字符串由 "auth_key" 组成.<br>
 * 权限常量类:{@link com.yixq.common.controller.auth.Permissions}
 * 
 * @author kyler.tang
 *
 */
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Permission {
	public String[] value() default "";
	
	/**
	 * 是否允许游客模式访问,默认不允许访问
	 * @return
	 */
	public boolean allowVisitor() default false;
}
